"""
列表推导式：[数据 for循环 if判断(非必须)]
集合推导式：{数据 for循环 if判断(非必须)}
字典推导式：{key:val for循环 if判断(非必须)}
因为元组是不可以编辑的，所以没有元组推导式
(数据 for循环 if判断(非必须)) 生成器表达式
"""

def prefix(val):
    return f"sn:{val}"

# 列表推导式：[数据 for循环 if判断(非必须)]
ls = [f"{i}" for i in range(100) if i%2==0]
print(ls)

# 集合推导式：{数据 for循环 if判断(非必须)}
collections = {prefix(val) for val in ls}
print(collections)

# 字典推导式：{key:val for循环 if判断(非必须)}
dictionary = {val:len(val) for val in ls}
print(dictionary)

# 生成器表达式(一次性的)
generator = (i**2 for i in range(10))
for val in generator:
    print(val)


